<?php
/*
 *	【加密类】
 */
namespace core;
use think\facade\Db;
use think\facade\View;

class Encode{
	const IV  = "3282cfe8bdc6e353";//加密向量，16个字
	const KEY = '081620be29384814';//密钥，16个字
	
	/**
	 * 扫呗回调校验码生成
	 */
	static public function lcsw_notify_key($id){
		return substr(md5(md5($id)),-8);
	}
	
	/**
	 * API接口访问订单的校验码
	 */
	static public function order_codeid($id){
		return substr(md5(md5($id)),15,30);
	}
	
	/**
	 * 小程序API的校验码
	 */
	static public function minapp_api_md5($id){
		return substr(md5(base64_encode($id)),6,-10);
	}
	
	/**
	 * 手机端ID校验码
	 */
	static public function wap_code($id){
		return substr(md5(base64_encode($id)),8,-12);
	}
	
	/**
	 * 加密字符串
	 * @param string $strContent 待加密的字符串内容
	 * @param string $key 加密key
	 * @return string 返回加密后的字符串，失败返回false
	 */
	static public function encrypt($strContent,$key = self::KEY,$iv = self::IV){
	    $strEncrypted = openssl_encrypt($strContent,"AES-128-CBC", $key,OPENSSL_RAW_DATA, $iv);
	    return base64_encode($strEncrypted);
	}
	
	/**
	 * 解密字符串
	 * @param string $strEncryptCode加密后的字符串
	 * @param string $key 加密key
	 * @return string 返回解密后的字符串，失败返回false
	 */
	static public function decrypt($strEncryptCode,$key = self::KEY,$iv = self::IV){
	    $strEncrypted = base64_decode($strEncryptCode);
	    return openssl_decrypt($strEncrypted,"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv);
	}
}
?>